package cpr.view;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.rmi.RemoteException;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.WindowConstants;
import javax.swing.border.TitledBorder;

import bean.vo.ParametrosVO;
import cpr.controller.ClienteCprRMI;
import java.awt.Font;

@SuppressWarnings("serial")
public class ModificarParametrosVentas extends javax.swing.JFrame implements ActionListener {

	private JPanel jPanel1;

	private JButton btnCancelar;
	private JTextField txtVigenciaPersupuesto;
	private JTextField txtVencimientoFactura;
	private JTextField txtPorcentajeGanancia;
	private JButton btnModificar;
	
	
	public ModificarParametrosVentas() {
		super();
		initGUI();
	}
	
	private void initGUI() {
		try {
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			this.setTitle("Actualizacion parametros de venta");
			getContentPane().setLayout(null);
			this.setPreferredSize(new java.awt.Dimension(300, 225));

			jPanel1 = new JPanel();
			getContentPane().add(jPanel1);
			jPanel1.setBounds(12, 11, 270, 122);
			jPanel1.setLayout(null);
			jPanel1.setBorder(BorderFactory.createTitledBorder(null, "Parametros", TitledBorder.LEADING, TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma",1,11), new java.awt.Color(0,0,255)));
			
			JLabel lblNewLabel_2 = new JLabel("Vencimiento de facturas (dias):");
			lblNewLabel_2.setBounds(10, 57, 180, 14);
			jPanel1.add(lblNewLabel_2);
			
			JLabel lblNewLabel_3 = new JLabel("Vigencia de presupuesto (dias):");
			lblNewLabel_3.setBounds(10, 26, 180, 14);
			jPanel1.add(lblNewLabel_3);
			
			txtVigenciaPersupuesto = new JTextField();
			txtVigenciaPersupuesto.setBounds(200, 23, 60, 20);
			jPanel1.add(txtVigenciaPersupuesto);
			txtVigenciaPersupuesto.setColumns(10);
			
			txtVencimientoFactura = new JTextField();
			txtVencimientoFactura.setBounds(200, 54, 60, 20);
			jPanel1.add(txtVencimientoFactura);
			txtVencimientoFactura.setColumns(10);
			
			JLabel lblNewLabel_4 = new JLabel("Porcentaje de ganancia:");
			lblNewLabel_4.setBounds(10, 88, 149, 14);
			jPanel1.add(lblNewLabel_4);
			
			txtPorcentajeGanancia = new JTextField();
			txtPorcentajeGanancia.setBounds(200, 85, 60, 20);
			jPanel1.add(txtPorcentajeGanancia);
			txtPorcentajeGanancia.setColumns(10);
			
			btnCancelar = new JButton();
			getContentPane().add(btnCancelar);
			btnCancelar.setText("Cancelar");
			btnCancelar.setBounds(158, 144, 91, 30);
			btnCancelar.setFont(new java.awt.Font("Tahoma",1,11));
			btnCancelar.addActionListener(this);
			
			btnModificar = new JButton();
			btnModificar.setText("Modificar");
			btnModificar.setFont(new Font("Tahoma", Font.BOLD, 11));
			btnModificar.setBounds(40, 144, 91, 30);
			getContentPane().add(btnModificar);
			btnModificar.addActionListener(this);

			ParametrosVO parametros = ClienteCprRMI.getInstance().getIRemota().getParametros();
			txtPorcentajeGanancia.setText(((Float)parametros.getMargenGanancia()).toString());
			txtVencimientoFactura.setText(((Integer)parametros.getDiasVencimientoFacturas()).toString());
			txtVigenciaPersupuesto.setText(((Integer)parametros.getDiasVigenciaCotizacion()).toString());
			
			pack();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	@Override
	public void actionPerformed(ActionEvent arg0) {
		if (arg0.getSource() == btnModificar){
			ParametrosVO params = new ParametrosVO();
			try {	
				params.setDiasVencimientoFacturas(Integer.valueOf(txtVencimientoFactura.getText()));
				params.setDiasVigenciaCotizacion(Integer.valueOf(txtVigenciaPersupuesto.getText()));
				params.setMargenGanancia(Float.valueOf(txtPorcentajeGanancia.getText()));
			} catch (Exception e) {
				JOptionPane.showMessageDialog(null, "Parametros invalidos", "Error en la carga de datos", JOptionPane.WARNING_MESSAGE);
				return;
			}
			
			try {
				ClienteCprRMI.getInstance().getIRemota().setParametros(params);
				JOptionPane.showMessageDialog(null, "Parametros actualizados con exito.", "Actualizacion de Datos", JOptionPane.INFORMATION_MESSAGE);
			} catch (RemoteException e) {
				String message = e.getMessage();
				int index = message.indexOf("java.rmi.RemoteException: ");
				message = message.substring(index + 26, message.length());
				JOptionPane.showMessageDialog(null, message, "Error", JOptionPane.ERROR_MESSAGE);
			}
		} else if (arg0.getSource() == btnCancelar) {
			dispose();
		}
	}
}
